package com.spring.principle;

import com.spring.principle.model.Dog;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.ApplicationScope;
import org.springframework.web.context.annotation.RequestScope;
import org.springframework.web.context.annotation.SessionScope;

@Component //组件层
public class DogBeanConfig {
//    @Bean
//    public Dog dog(){
//        Dog dog=new Dog();
//        dog.setName("旺旺");
//        return dog;
//    }

//    @Bean
//    @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
//    public Dog singleDog(){
//        Dog dog=new Dog();
//        return dog;
//    }
//    @Bean
//    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
//    public Dog prototype(){
//        Dog dog=new Dog();
//        return dog;
//    }
//    @Bean
//    @RequestScope
//    public Dog requestDog(){
//        Dog dog=new Dog();
//        return dog;
//    }
//    @Bean
//    @SessionScope
//    public Dog sessionDog(){
//        Dog dog=new Dog();
//        return dog;
//    }
    @Bean
    @ApplicationScope
    public Dog applicationDog(){
        Dog dog=new Dog();
        return dog;
    }

}
